home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C / Applications / Python 1.3 / source code / Dos / python.mak < prev    next >
Encoding:
Text File  |  1995-12-17  |  4.8 KB  |  219 lines  |  [TEXT/R*ch]

  1. #
  2. # some notes on the Makefile:
  3. #
  4. # We support both windows (QuickWin) and gcc 32-bit executables.  The parser
  5. # generator (pgen) is always built as a 32-bit executable; this implies a
  6. # special build target and recursive invocation of make.  (This is not yet
  7. # implemented; If you change the grammar you must first do a build with gcc.)
  8. #
  9.  
  10. BINDIR = ..\bin
  11. LIBDIR = ..\lib
  12. OBJDIR = ..\obj\$(TARGET)
  13.  
  14.  
  15. #
  16. # define object modules
  17. #
  18.  
  19. PYOBJECTS = \
  20.     $(OBJDIR)\config.$(OBJ) \
  21.     $(OBJDIR)\acceler.$(OBJ) \
  22.     $(OBJDIR)\accesobj.$(OBJ) \
  23.     $(OBJDIR)\arraymod.$(OBJ) \
  24.     $(OBJDIR)\bltinmod.$(OBJ) \
  25.     $(OBJDIR)\ceval.$(OBJ) \
  26.     $(OBJDIR)\classobj.$(OBJ) \
  27.     $(OBJDIR)\compile.$(OBJ) \
  28.     $(OBJDIR)\dosmod.$(OBJ) \
  29.     $(OBJDIR)\errors.$(OBJ) \
  30.     $(OBJDIR)\fileobj.$(OBJ) \
  31.     $(OBJDIR)\floatobj.$(OBJ) \
  32.     $(OBJDIR)\frameobj.$(OBJ) \
  33.     $(OBJDIR)\funcobj.$(OBJ) \
  34.     $(OBJDIR)\getmtime.$(OBJ) \
  35.     $(OBJDIR)\getopt.$(OBJ) \
  36.     $(OBJDIR)\graminit.$(OBJ) \
  37.     $(OBJDIR)\grammar1.$(OBJ) \
  38.     $(OBJDIR)\import.$(OBJ) \
  39.     $(OBJDIR)\intobj.$(OBJ) \
  40.     $(OBJDIR)\intrchk.$(OBJ) \
  41.     $(OBJDIR)\listnode.$(OBJ) \
  42.     $(OBJDIR)\listobj.$(OBJ) \
  43.     $(OBJDIR)\lispmod.$(OBJ) \
  44.     $(OBJDIR)\longobj.$(OBJ) \
  45.     $(OBJDIR)\mapobj.$(OBJ) \
  46.     $(OBJDIR)\marshal.$(OBJ) \
  47.     $(OBJDIR)\mathmod.$(OBJ) \
  48.     $(OBJDIR)\methobj.$(OBJ) \
  49.     $(OBJDIR)\modsupp.$(OBJ) \
  50.     $(OBJDIR)\modulobj.$(OBJ) \
  51.     $(OBJDIR)\node.$(OBJ) \
  52.     $(OBJDIR)\object.$(OBJ) \
  53.     $(OBJDIR)\parser.$(OBJ) \
  54.     $(OBJDIR)\parsemod.$(OBJ) \
  55.     $(OBJDIR)\parsetok.$(OBJ) \
  56.     $(OBJDIR)\pymain.$(OBJ) \
  57.     $(OBJDIR)\pyrun.$(OBJ) \
  58.     $(OBJDIR)\rangeobj.$(OBJ) \
  59.     $(OBJDIR)\readline.$(OBJ) \
  60.     $(OBJDIR)\regexmod.$(OBJ) \
  61.     $(OBJDIR)\regexpr.$(OBJ) \
  62.     $(OBJDIR)\rotormod.$(OBJ) \
  63.     $(OBJDIR)\strobj.$(OBJ) \
  64.     $(OBJDIR)\stropmod.$(OBJ) \
  65.     $(OBJDIR)\strctmem.$(OBJ) \
  66.     $(OBJDIR)\strctmod.$(OBJ) \
  67.     $(OBJDIR)\sysmod.$(OBJ) \
  68.     $(OBJDIR)\system.$(OBJ) \
  69.     $(OBJDIR)\timemod.$(OBJ) \
  70.     $(OBJDIR)\tokenize.$(OBJ) \
  71.     $(OBJDIR)\tracebak.$(OBJ) \
  72.     $(OBJDIR)\tupleobj.$(OBJ) \
  73.     $(OBJDIR)\typeobj.$(OBJ) \
  74.     $(OBJDIR)\version.$(OBJ) \
  75.  
  76. GENOBJECTS = \
  77.     $(OBJDIR)\acceler.$(OBJ) \
  78.     $(OBJDIR)\bitset.$(OBJ) \
  79.     $(OBJDIR)\grammar1.$(OBJ) \
  80.     $(OBJDIR)\intrchk.$(OBJ) \
  81.     $(OBJDIR)\listnode.$(OBJ) \
  82.     $(OBJDIR)\node.$(OBJ) \
  83.     $(OBJDIR)\parser.$(OBJ) \
  84.     $(OBJDIR)\parsetok.$(OBJ) \
  85.     $(OBJDIR)\tokenize.$(OBJ) \
  86.     $(OBJDIR)\firstset.$(OBJ) \
  87.     $(OBJDIR)\grammar.$(OBJ) \
  88.     $(OBJDIR)\metagram.$(OBJ) \
  89.     $(OBJDIR)\pgen.$(OBJ) \
  90.     $(OBJDIR)\pgenmain.$(OBJ) \
  91.     $(OBJDIR)\prntgram.$(OBJ) \
  92.  
  93.  
  94. #
  95. # build python.exe, 32 bit DOS extended GCC. 
  96. #
  97.  
  98. !if "$(TARGET)" == "dos32"
  99.  
  100. !if "$(MAKE)" != "NMAKER"
  101. !error You must use real-mode make with GCC.
  102. !endif
  103.  
  104. CC       = gcc
  105. AR       = ar
  106. CPPFLAGS = -DHAVE_CONFIG_H
  107. CFLAGS   = -O2
  108. PYTHON   = $(BINDIR)\python.exe
  109. CLEAN    = pgen.exe graminit.[ch]
  110. OBJ      = o
  111.  
  112. {}.c{$(OBJDIR)}.$(OBJ) :
  113.     $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
  114.  
  115. all : init $(PYTHON)
  116. $(PYTHON) : $(PYOBJECTS)
  117.     $(CC) $(CFLAGS) @<< -o python.out -lm
  118. $**
  119. <<
  120.     coff2exe python.out
  121.     mv python.exe $(BINDIR)
  122.  
  123. pgen.exe : $(GENOBJECTS)
  124.     $(CC) $(CFLAGS) @<< -o pgen
  125. $**
  126. <<
  127.     strip pgen
  128.     coff2exe pgen
  129.     del pgen
  130.  
  131.  
  132. # The dependencies for graminit.[ch] are not turned on in the
  133. # distributed Makefile because the files themselves are distributed.
  134. # Turn them on if you want to hack the grammar.
  135.  
  136. graminit.c:    Grammar pgen.exe
  137.         pgen Grammar
  138.  
  139. # One call to python_gen writes both files, so here's a fake dependency:
  140. graminit.h:    graminit.c
  141.  
  142.  
  143. !endif
  144.  
  145.  
  146. #
  147. # build 16 bit windows python DLL, and python executable.
  148. #    (Actually we use QuickWin for now...)
  149. #
  150.  
  151. !if "$(TARGET)" == "win16"
  152.  
  153. CC        = cl
  154. AR        = lib
  155. BSCFLAGS  = -Es
  156. CPPFLAGS  = -DQUICKWIN -DHAVE_CONFIG_H
  157. CFLAGS    = -nologo -Fr$(OBJDIR)\ -AL
  158. RELCFLAGS = -G3fy -Owceilot
  159. DBGCFLAGS = -Zi -G2f -Fd$(OBJDIR)\python.pdb
  160. LDFLAGS   = /farcall /onerror:noexe /noignorecase
  161. PYTHONLIB = $(LIBDIR)\python.lib
  162. PYTHON    = $(BINDIR)\pythonw.exe
  163. CLEAN     = python.bsc
  164. OBJ       = obj
  165.  
  166. !if "$(DEBUG)" == "true"
  167. CFLAGS = $(CFLAGS) $(DBGCFLAGS)
  168.  
  169. !else
  170. CFLAGS = $(CFLAGS) $(RELCFLAGS)
  171.  
  172. !endif
  173.  
  174.  
  175. {}.c{$(OBJDIR)}.$(OBJ) :
  176.     $(CC) $(CPPFLAGS) $(CFLAGS) -Mq -Fo$@ -c $<
  177.  
  178. all : init $(PYTHON)
  179. $(PYTHON) : $(PYOBJECTS)
  180.     $(CC) $(CFLAGS) -Mq -Fe$@ $** toolhelp.lib -link $(LDFLAGS)
  181.     bscmake $(BSCFLAGS) -o python.bsc $(OBJDIR)\*.sbr
  182.  
  183. _SOURCE = $(PYOBJECTS:..\obj\win16=.)
  184. SOURCES = $(_SOURCE:.obj=.c)
  185.  
  186. rebuild_sdb :
  187.     cl -Zs -Fr$(OBJDIR)\ $(SOURCES)
  188.     bscmake $(BSCFLAGS) -o python.bsc $(OBJDIR)\*.sbr
  189.  
  190. $(OBJDIR)\system.obj : system.c
  191.     $(CC) $(CPPFLAGS) $(CFLAGS) -GA -GEd -Fo$@ -c $(@B).c
  192.  
  193. !endif
  194.  
  195.  
  196. !ifndef OBJ
  197. !error TARGET must be dos32 or win16.
  198. !endif
  199.  
  200.  
  201. #
  202. # Use this target to build directories
  203. #
  204.  
  205. init :
  206.     @-mkdir $(OBJDIR)
  207.  
  208.  
  209. clean :
  210.     rm -rf $(OBJDIR) $(PYTHON) $(PYTHONLIB) $(CLEAN)
  211.  
  212.  
  213. $(OBJDIR)\ceval.$(OBJ):        graminit.h
  214. $(OBJDIR)\compile.$(OBJ):    graminit.h
  215. $(OBJDIR)\bltinmod.$(OBJ):    graminit.h
  216. $(OBJDIR)\import.$(OBJ):    graminit.h
  217. $(OBJDIR)\parsemod.$(OBJ):    graminit.h
  218. $(OBJDIR)\pyrun.$(OBJ):        graminit.h
  219.